معرفي PCA يك فيلتر قوي پردازش تصوير و نحوه پياده سازي آن با متلب
از PCA میشه برای استخراج ویژگی یا همون Feature Extraction هم استفاده کرد .. PCA ماهیتا چیکار میکنه؟ عناصر پایه ای یه ماتریس (مثلا یه تصویر) رو پیدا میکنه به عنوان بردارهای ویژه و بر حسب مقادیر ویژه ای که دارن مرتبشون میکنه .. این بردار ویژه ها از ماتریس کواریانس به دست میان .. حالا اگه ما ماتریس رو با تمام بردارهای ویژه اش نمایش بدیم؛ تصویر مثل تصویر واقیه .. مثل که چه عرض کنم، خود خودشه .. چون تغییری توش ندادیم .. امــا اگه بیایم از بردارهای ویژه بر حسب مقادیر ویژه ی کم ارزشی که دارن کم کنیم و تصویر رو نشون بدیم، میبینیم که تصویر از نظر کیفیت یه کم بدتر شده .. این بدی وقتی بیشتر میشه که ما بردار ویژه هایی با مقادیر ویژه ی بیشتر رو حذف کنیم .. دقیقا عبارت درستی که میشه به کار برد اینه که ما داریم اطلاعات تصویر رو از بین میبریم و بهای این کار هم با حذف بردارهای ویژه ی تصویر پرداخته میشه .. به خاطر همینه که میگن PCA کاهش بعد انجام میده .. حالا به قضیه یه جور دیگه نگاه کنیم . شما PCA زدید روی تصویرتون و مثلا ده تا بعد اولش رو نگه داشتید .. (بعد یعنی همون بردار ویژه هایی که صحبتش بود) .. الان این ماتریس جدید رو (منظورم تصویر کاهش یافته از نظر بعده) اگه نمایش بدیم میبینیم که کیفیتش کم شده امــا ماهیتش همون تصویره .. یعنی میتونیم بگیم به نوعی ویژگی های تصویر رو میتونه بیان کنه امــا با توانایی و قابلیت کمتر .. پــس نتیجه گیری ای که میتونیم بکنیم اینه که میتونیم از خروجی PCA به عنوان یه Feature برای تصویرمون استفاده کنیم .. این که این نوع Feature به درد میخوره یا نه خیلی خیلی به Application کاری که میخوایم بکنیم بستگی داره .. مثلا برای کار OCR یا مورد مشابهش، تشخیص اعداد؛ PCA میتونه رل خیلی خوبی به عنوان feature بازی کنه و به کارمون بیاد .. دلیلش هم خیلی وابسته هست به نوع دیتاهایی که داریم .. اعداد و ارقام .. سبک خاصی دارن
نظرات شما عزیزان: